home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 173amrg.zip / CNFG173A.MRG < prev    next >
Text File  |  1990-08-26  |  31KB  |  650 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against D:\172B\CONFIG.BAS to produce CONFIG.BAS
  3. * D:\172B\CONFIG.BAS:  Date 2-10-1990  Size 153303 bytes
  4. * ------------[ Created 08-26-1990 11:34:19 ]------------
  5. * REPLACING old line(s) by new
  6.       ' $linesize: 132
  7. * ------[ first line different ]------
  8.       ' $title:  'CONFIG 17.3A, Copyright 1983-90 by D. Thomas Mack' ' DA081003
  9.       ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
  10. * REPLACING old line(s) by new
  11. * ------[ first line different ]------
  12. 10000 ' CONFIG.BAS (RBBS-PC VERSION 17.3A)                           ' DA081003
  13.       ' by D.Thomas Mack
  14.       '   The Second Ring
  15.       '   39 Cranbury Dr.
  16.       '   Trumbull, CT. 06611
  17.       '
  18.       ' *******************************NOTICE**********************************
  19.       ' *  A limited license is granted to all users of this program and it's *
  20.       ' *  companion program, RBBS-PC (ver. 17.3A), to make copies of this    *
  21.       ' *  program and distribute the copies to other users, on the following *
  22.       ' *  conditions                                                         *
  23.       ' *   1.   The copyright notices contained within this program are not  *
  24.       ' *        altered, bypassed, or removed.                               *
  25.       ' *   2.   The program is not to be disrtibuted to others in modified   *
  26.       ' *        form (i.e. the line numbers must remain the same).           *
  27.       ' *   3.   No fee is charged (or any other consideration received)      *
  28.       ' *        for coping or distributing these programs without an express *
  29.       ' *        written agreement with D. Thomas Mack, The Second Ring,      *
  30.       ' *        39 Cranbury Dr., Trumbul, CT. 06611                          *
  31.       ' *                                                                     *
  32.       ' *      Copyright (c) 1983-1990 D. Thomas Mack, The Second Ring        *
  33.       ' ***********************************************************************
  34. '     $INCLUDE: 'CNFG-VAR.BAS'
  35.       CLEAR
  36. '
  37. ' ****************************************************************************
  38. ' *  DISPLAY THE CONFIG TITLE PAGE
  39. ' ****************************************************************************
  40. '
  41.       WIDTH 80
  42.       CLS
  43.       NOT.YET.IN$ = "[Not Implemented]"  ' Msg used in config for parm not yet implemented
  44.       NONE.PICKED$ = "<none>"    ' Standardized message
  45.       NUM.FILES = 8
  46.       NUM.GLOBAL = 4
  47.       NUM.MAIN = 18
  48.       NUM.SYSOP = 7
  49.       NUM.UTILITY = 12
  50.       NUM.LIBRARY = 7
  51.       VERSION.NUMBER$ = "17.3A"
  52.       I! = FRE(C$)
  53.       KEY OFF
  54.       CALL CNFGINIT
  55.       PRINT TAB(60)"tm"
  56.       PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
  57.       PRINT
  58.       PRINT TAB(17)"Capital PC User Group User-Supported Software"
  59.       PRINT
  60.       X$ = "    "
  61.       PRINT "Copyright (c) 1983-1990 D. Thomas Mack, 39 Cranbury Dr., Trumbull, CT. 06611"
  62.       PRINT
  63.       PRINT X$;"    If you use RBBS-PC " + CONFIG.VERSION$ + " and find"
  64.       PRINT X$;"    it valuable, consider contributing to"
  65.       PRINT ""
  66.       PRINT X$;"                 Capital PC Software Exchange"
  67.       PRINT X$;"                     Post Office Box 6128"
  68.       PRINT X$;"                Silver Spring, Maryland  20906"
  69.       PRINT
  70.       PRINT X$;"    You are free to copy and share RBBS-PC provided"
  71.       PRINT X$;"      1.  This program is not distributed in modified form."
  72.       PRINT X$;"      2.  No fee or consideration is charged for RBBS-PC itself."
  73. * REPLACING old line(s) by new
  74. 12160 KEY OFF
  75. '
  76. ' * IF A MESSAGE FILE EXISTS, READ IN THE PARAMETERS IN IT.
  77. '
  78.       FILE$ = MAIN.MESSAGE.FILE$
  79.       GOSUB 30000
  80.       NO.OLD.FILE = FALSE
  81.       IF OKAY THEN _           ' IF MESSAGE FILE EXISTS, READ CHECKPOINT RECORD
  82.          GOTO 12170
  83.       NO.OLD.FILE = TRUE
  84.       A$ = "Message file " + MAIN.MESSAGE.FILE$ + " not found.  Create new one"
  85.       CALL GETNUMYN (A$,AB)
  86.       IF NOT AB THEN _
  87. * ------[ first line different ]------
  88.          IF CONFERENCE.MODE > 0 THEN _                               ' DA082501
  89.             MAIN.MESSAGE.FILE$ = MAINMSG$ : _                        ' DA082501
  90.             MAIN.USER.FILE$ = MAINUSR$ : _                           ' DA082501
  91.             GOTO 12151 _                                             ' DA082501
  92.          ELSE _                                                      ' DA082501
  93.             SYSTEM                                                   ' DA082501
  94.       CALLS.TODATE! = 0                                 ' FIRST MSG#    -- 0
  95.       FIRST.USER.RECORD = 1                             ' USERS file    -- first record number
  96.       CURRENT.USER.COUNT = FIRST.USER.RECORD            ' USERS file    -- next available record number
  97.       HIGHEST.USER.RECORD = MAX.USR.FILE.SIZE.FRM.DEF   ' USERS file    -- last record number
  98.       FIRST.MESSAGE.RECORD = 2+MAXIMUM.NUMBER.OF.NODES  ' MESSAGES file -- first record of messages
  99.       NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD        ' MESSAGES file -- next available record number
  100.       HIGHEST.MESSAGE.RECORD = 5 * MAX.ALLOWED.MSGS.FRM.DEF _
  101.                                + 1 _
  102.                                + MAXIMUM.NUMBER.OF.NODES ' MESSAGES file -- last record number
  103.       MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF  ' MESSAGES file -- maximum number of messages
  104.       B1 = MAXIMUM.NUMBER.OF.NODES
  105.       B3! = HIGHEST.MESSAGE.RECORD
  106.       GOSUB 22080
  107.       GOSUB 30450                        ' UPDATE CHECKPOINT RECORD
  108. * REPLACING old line(s) by new
  109. 13228 A$ = ""
  110. * ------[ first line different ]------
  111.       IF INSTR(USER.INIT.COMMAND$,"S0=") = 0 THEN _                  ' DA080503
  112.          USER.INIT.COMMAND$ = USER.INIT.COMMAND$ + "S0=001"          ' DA080503
  113. * REPLACING old line(s) by new
  114. 13229 CALL GETINIT ("How many rings should RBBS-PC wait before answering? ",24,0,255,REQUIRED.RINGS,CR)
  115.       IF CR THEN _
  116.          GOTO 13229
  117.       IF REQUIRED.RINGS = 0 THEN _
  118. * ------[ first line different ]------
  119.          MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,3) = "001" ' DA080503
  120.          RETURN
  121. * REPLACING old line(s) by new
  122. 13235 IF REQUIRED.RINGS > 5 THEN _
  123.          A$ = "(<6 for ringback)" : _
  124.          GOTO 13229
  125. * ------[ first line different ]------
  126.       MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,3) = "255" ' DA080503
  127.       RETURN
  128. * REPLACING old line(s) by new
  129. * ------[ first line different ]------
  130. 13237 MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,3) = "254" ' DA080503
  131.       RETURN
  132. * REPLACING old line(s) by new
  133. 14815 GOSUB 15200
  134.       QUES.PATH$ = HJ$
  135.       RETURN
  136. '
  137. * ------[ first line different ]------
  138. ' *  PREFIX FOR FOR FOUR MAJOR 'HELP' FILES                          ' KG081402
  139. '
  140. * REPLACING old line(s) by new
  141. 14820 GOSUB 14970
  142.       IF LEN(HJ$) > 7 THEN _
  143.          RETURN
  144.       HELP.FILE.PREFIX$ = HJ$
  145. * ------[ first line different ]------
  146.       HELP$(3) = HELP.FILE.PREFIX$ + "3"                             ' KG081402
  147.       HELP$(4) = HELP.FILE.PREFIX$ + "4"                             ' KG081402
  148.       HELP$(7) = HELP.FILE.PREFIX$ + "7"                             ' KG081402
  149.       HELP$(9) = HELP.FILE.PREFIX$ + "9"                             ' KG081402
  150.       RETURN
  151. '
  152. ' *  NAME OF 'NEWUSER' FILE
  153. '
  154. * REPLACING old line(s) by new
  155. 14845 CALL ASKRO ("Extension for compressed files",24,HJ$)
  156. * ------[ first line different ]------
  157.       IF LEN(HJ$) > 3 THEN _                                         ' KG080101
  158.          GOTO 14845
  159.       CALL ALLCAPS (HJ$)
  160.       DEFAULT.EXTENSION$ = HJ$
  161.       RETURN
  162. '
  163. ' *  NAME OF 'FILE DIRECTORY' FILE'S EXTENSION
  164. '
  165. * REPLACING old line(s) by new
  166. 14980 CALL ASKRO ("Specify name of the file for parameter " + X$ + ".",24,HJ$)
  167.       CALL ALLCAPS (HJ$)
  168.       IF LEN(HJ$) < 1 OR LEN(HJ$) > 12 THEN _
  169.          GOTO 14980
  170.       L1 = INSTR(HJ$,".")
  171.       IF L1 = 0 THEN _
  172. * ------[ first line different ]------
  173.          IF LEN(HJ$) < 9 THEN _                                      ' KG081403
  174.             GOTO 15045 _                                             ' KG081403
  175.          ELSE GOTO 14980                                             ' KG081403
  176.       IF L1 > 9 THEN _
  177.          GOTO 14980
  178.       IF L1 < 2 THEN _
  179.          GOTO 14980
  180.       IF LEN(HJ$) - L1 > 3 THEN _
  181.          GOTO 14980
  182. * REPLACING old line(s) by new
  183. * ------[ first line different ]------
  184. 15250 CALL MMINTEGER ("# seconds to delay prior to issuing modem commands (1 to 99)?",1,99,MODEM.COMMAND.DELAY.TIME) ' KG072902
  185.       RETURN
  186. * REPLACING old line(s) by new
  187. 15460 GOSUB 17340
  188.       MAIN.MESSAGE.FILE$ = HJ$
  189. * ------[ first line different ]------
  190.       CALL BRKFNAME (HJ$,X1$,X2$,X3$,TRUE)                           ' DA082104
  191.       MAIN.MESSAGE.BACKUP$ = X1$ + X2$ + ".BAK"                      ' DA082104
  192.       MAINMSG$ = MAIN.MESSAGE.FILE$
  193.       RETURN
  194. '
  195. ' * DETERMINE THE NAME OF THE "CALLERS" FILE
  196. '
  197. * REPLACING old line(s) by new
  198. 15710 CLS
  199.       GOSUB 15780
  200.       PRINT "         Currently Specified Modem Commands are:"
  201.       PRINT
  202.       PRINT "  Note:  '{' means embed carriage return  '~' means delay 1 sec"
  203.       PRINT
  204.       PRINT "1. Reset the modem                : " + USER.RESET.COMMAND$
  205.       PRINT ""
  206.       PRINT "2. Initialize the modem           : " + USER.INIT.COMMAND$
  207. * ------[ first line different ]------
  208.       PRINT "   Note: Item 2 MUST contain one of the following:"          ' DA080503
  209.       PRINT "            S0=001  (to answer on 0 rings)"                  ' DA080503
  210.       PRINT "            S0=254  (to answer on >0 rings, no ring-back)"   ' DA080503
  211.       PRINT "            S0=255  (to answer on >0 rings, with ring-back"
  212.       PRINT ""
  213.       PRINT "3. Count the number of rings      : " + USER.COUNT.RINGS.COMMAND$
  214.       PRINT ""
  215.       PRINT "4. Answer the phone               : " + USER.ANSWER.COMMAND$
  216.       PRINT ""
  217.       PRINT "5. Take the phone off the hook    : " + USER.GO.OFFHOOK.COMMAND$
  218.       PRINT ""
  219.       PRINT "6. Clear the modem's firmware     : " + USER.FIRMWARE.CLEAR.CMND$
  220.       PRINT ""
  221.       PRINT "7. Initialize modem's firmware    : " + USER.INITIALIZE.COMMAND$ ' DA080503
  222.       PRINT ""
  223.       PRINT "8. Write to modem's firmware      : " + USER.FIRMWARE.WRITE.CMND$
  224.       CALL GETINIT ("Command to change (1 to 8), CR to end, or 0 to reset to defaults",24,0,8,I,CR)
  225.       IF CR THEN _
  226.          RETURN
  227.       IF I <> 0 THEN _
  228.          GOTO 15711
  229.       GOSUB 15790
  230.       GOTO 15710
  231. * REPLACING old line(s) by new
  232. * ------[ first line different ]------
  233. 15790 CALL SELMODEM                                                  ' DA080503
  234.       RETURN
  235. * REPLACING old line(s) by new
  236. 15862 A$ = "File extension for macro files (3 chars required)"
  237.       CALL ASKRO (A$,24,MACRO.EXTENSION$)
  238.       IF LEN(MACRO.EXTENSION$) <> 3 THEN _
  239.          GOTO 15862
  240. * ------[ first line different ]------
  241.       CALL ALLCAPS(MACRO.EXTENSION$)                                 ' DA082105
  242.       RETURN
  243. * REPLACING old line(s) by new
  244. 16128 IF FOSSIL OR B1! < 38400 THEN _
  245.          GOTO 16129
  246.       CLS
  247.       LOCATE 5,13
  248.       PRINT "38400 available only with FOSSIL driver"
  249.       LOCATE 6,10
  250.       PRINT "First set communications port and fossil driver"
  251.       CALL ASKRO ("  INITIAL BAUD RATE not changed.  Press [ENTER] to continue",10,ANS$)
  252. * ------[ first line different ]------
  253.       RETURN
  254. * REPLACING old line(s) by new
  255. * ------[ first line different ]------
  256. 17280 CALL ASKRO("Name of file shown for security breaches (prefix ONLY)",24,HJ$) ' KG030301
  257.       IF LEN(HJ$) > 8 OR INSTR(HJ$,".") > 0 THEN _
  258.          GOTO 17280
  259.       IF LEN(HJ$) < 1 THEN _
  260.          SECVIO.HLP$ = NONE.PICKED$ : _
  261.          RETURN
  262.       CALL ALLCAPS (HJ$)
  263.       SECVIO.HLP$ = HELP.PATH$ + HJ$ + "." + HELP.EXTENSION$
  264.       RETURN
  265. * REPLACING old line(s) by new
  266. 18102 IF START.INDIV = 0 OR LEN.INDIV = 0 THEN_
  267.         INDIV.ID$ = NONE.PICKED$ _
  268.       ELSE INDIV.ID$ = "(nonstandard)"
  269.       START.WRITE = START.INDIV
  270. * ------[ first line different ]------
  271.       LEN.WRITE = LEN.INDIV                                          ' KG060103
  272.       GOSUB 17805
  273.       IF NOT OK THEN _
  274.          START.INDIV = 0 : _
  275.          LEN.INDIV = 31 : _
  276.          GOTO 18102
  277.       START.WRITE = START.INDIV
  278.       RETURN
  279. * REPLACING old line(s) by new
  280. 22340 LOCATE 22,1
  281.       PRINT SPACE$(15) + _
  282.             TIME$ + _
  283.             " " + _
  284.             SPACE$(64);
  285.       LOCATE 22,35
  286.       COLOR 0,7
  287.       PRINT " Reading Data, Wait a sec !!! ";
  288. * ------[ first line different ]------
  289.       COLOR FG,BG,BORDER                                             ' KG073103
  290. * INSERTING new line(s)
  291. 22342 RETURN                                                         ' KG073103
  292. '
  293. ' * BEFORE EXITING, ASK USER IF HE WANTS TO WRITE OUT THE CHANGES OR QUIT
  294. '
  295. * REPLACING old line(s) by new
  296. * ------[ first line different ]------
  297. 22350 CALL ASKRO ("Save changes?  Y)es & exit, N)o - reedit, Q)uit don't save (Y,N,Q)",24,HJ$) ' KG080902
  298.       IF LEN(HJ$) < 1 OR LEN(HJ$) > 4 THEN _
  299.          GOTO 22350                                                  ' KG081001
  300.       CALL ALLCAPS (HJ$)
  301.       AB = INSTR("NYQ",LEFT$(HJ$,1))                                 ' KG080903
  302.       ON AB GOTO 12190,59000,60360                                   ' KG081001
  303.       GOTO 22350                                                     ' KG081001
  304. '
  305. ' * ASK THE USER WHICH RBBS-PC.DEF FILE CONFIG IS TO WORK WITH
  306. '
  307. * DELETING old line(s)
  308. 22380
  309. 22470
  310. * REPLACING old line(s) by new
  311. * ------[ first line different ]------
  312. 23610 I = LOC(1) + VAL(MID$(MESSAGE.RECORD$,117,4)) - 1              ' KG072802
  313.       RETURN
  314. '
  315. ' * REPAIR THE MESSAGES FILE
  316. '
  317. * REPLACING old line(s) by new
  318. 23731 LOCATE 25,5
  319.       COMPORT% = VAL(RIGHT$(COM.PORT$,1)) -1
  320.       IF COMPORT% < 0 THEN _
  321.          PRINT "COM port cannot be set while using COM0" : _
  322.          DELAY! = FNTI! + 3 : _
  323.          GOSUB 60440 : _
  324. * ------[ first line different ]------
  325.          RETURN
  326.       FOS.BUF$ = SPACE$(80)                                          ' DA080502
  327.       CLS                                                            ' DA080502
  328.       PRINT "Setting modem firmware for RBBS-PC on " + COM.PORT$     ' DA080502
  329.       IF NOT FOSSIL THEN _                                           ' DA080502
  330.          GOTO 23732                                                  ' DA080502
  331.       CALL FOSINIT(COMPORT%,RESULT%)                                 ' DA080502
  332.       IF RESULT% = -1 THEN _                                         ' DA080502
  333.          PRINT "ERROR initializing FOSSIL.  Firmware reset aborted." : _  ' DA080502
  334.          GOTO 23736                                                  ' DA080502
  335.       CALL FOSSPEED(COMPORT%,2400, 2, 3, 1)                          ' DA080502
  336.       STATE% = 1                                                     ' DA080502
  337.       CALL FOSDTR(COMPORT%,STATE%)                                   ' DA080502
  338.       GOTO 23733                                                     ' DA081002
  339. * REPLACING old line(s) by new
  340. * ------[ first line different ]------
  341. 23732 OUT MODEM.CONTROL.REGISTER,&H0                                 ' DA080501
  342.       OUT LINE.CONTROL.REGISTER - 1,&H6                              ' DA080501
  343.       OPEN COM.PORT$ + ":2400,N,8,1,CD,DS" AS #3                     ' DA080502
  344. * INSERTING new line(s)
  345. 23733 A$ = USER.FIRMWARE.CLEAR.CMND$ ' Clear to factory defaults     ' DA080502
  346.       GOSUB 23736                                                    ' DA080502
  347.       A$ = USER.INITIALIZE.COMMAND$  ' set up RBBS-PC config         ' DA080502
  348.       GOSUB 23736                                                    ' DA080502
  349.       A$ = USER.FIRMWARE.WRITE.CMND$ ' Write changes to NVRam        ' DA080502
  350.       GOSUB 23736                                                    ' DA080502
  351.       IF FOSSIL THEN _                                               ' DA080502
  352.          STATE% = 0 : _                                              ' DA080502
  353.          CALL FOSDTR(COMPORT%,STATE%) : _                            ' DA080502
  354.          CALL FOSEXIT(COMPORT%) : _                                  ' DA080502
  355.       ELSE CLOSE #3                                                  ' DA080502
  356.       PRINT "Press a key to continue"                                ' DA080502
  357.       WHILE INKEY$ = "" : WEND                                       ' DA080502
  358.       RETURN                                                         ' DA080502
  359. '                                                                    ' DA080502
  360. ' * ROUTINE TO SEND/RECEIVE DATA FROM MODEM                          ' DA080502
  361. '                                                                    ' DA080502
  362. * DELETING old line(s)
  363. 23734
  364. * REPLACING old line(s) by new
  365. * ------[ first line different ]------
  366. 23736 PRINT "Send:"                                                  ' DA080502
  367.       WHILE INSTR(A$, "{")                                           ' DA080502
  368.          MID$(A$, INSTR(A$,"{"), 1) = CHR$(13)                       ' DA081005
  369.       WEND                                                           ' DA080502
  370.       WHILE INSTR(A$, "~")                                           ' DA080502
  371.          WAIT.FOUND = INSTR(A$,"~")                                  ' DA080502
  372.          TEMP.A$ = MID$(A$, WAIT.FOUND + 1)                          ' DA080502
  373.          A$ = LEFT$(A$, WAIT.FOUND - 1)                              ' DA080502
  374.          GOSUB 23739                                                 ' DA080502
  375.          DELAY! = FNTI! + 1                                          ' DA080502
  376.          GOSUB 60440                                                 ' DA080502
  377.          A$ = TEMP.A$                                                ' DA080502
  378.       WEND                                                           ' DA080502
  379.       A$ = A$ + CHR$(13)                                             ' DA081005
  380.       GOSUB 23739                                                    ' DA080502
  381.       DELAY! = FNTI! + 3                                             ' DA080502
  382.       GOSUB 60440                                                    ' DA080502
  383.       PRINT "Receive:"                                               ' DA080502
  384.       IF NOT FOSSIL THEN _                                           ' DA080502
  385.          GOTO 23738                                                  ' DA080503
  386.       FOS.LEN% = 80                                                  ' DA080503
  387.       CALL FOSREAD(COMPORT%, FOS.LEN%, FOS.BUF$)                     ' DA080502
  388.       PRINT LEFT$(FOS.BUF$,FOS.LEN%)                                 ' DA080503
  389.       RETURN                                                         ' DA080502
  390. * INSERTING new line(s)
  391. 23738 WHILE LOC(3) > 1                                               ' DA080502
  392.          INPUT #3, A$                                                ' DA080502
  393.          PRINT A$                                                    ' DA080502
  394.       WEND                                                           ' DA080502
  395.       RETURN                                                         ' DA080502
  396. * REPLACING old line(s) by new
  397. * ------[ first line different ]------
  398. 23739 PRINT A$;                                                      ' DA080502
  399.       IF NOT FOSSIL THEN_                                            ' DA080502
  400.          PRINT #3, A$; _                                             ' DA080502
  401.       ELSE _                                                         ' DA080502
  402.          CALL FOSWRITE(COMPORT%,LEN(A$),A$)                          ' DA080502
  403.       RETURN                                                         ' DA080502
  404. '
  405. ' * ROUTINE TO RENUMBER THE MESSAGE FILE
  406. '
  407. * REPLACING old line(s) by new
  408. * ------[ first line different ]------
  409. 23750 REDIM MSG.XREF(MAXIMUM.NUMBER.OF.MSGS,2)                       ' KG072801
  410.       MSG.XREF.INDX = 0                                              ' dd062790
  411.       B1 = CALLS.TODATE!                                             ' dd062790
  412.       CALL GETINIT ("Renumber starting with OLD message # (<" + _
  413.                      STR$(CALLS.TODATE! + 1) + _
  414.                     ")",24,1,B1,RE,CR)
  415.       IF CR THEN _
  416.          RETURN
  417. * REPLACING old line(s) by new
  418. * ------[ first line different ]------
  419. 23900 A$ = "Reset last message read for all users"                   ' dd062790
  420.       GOSUB 22580
  421. * REPLACING old line(s) by new
  422. 23905 GOSUB 24020
  423.       GOSUB 24025
  424.       A! = HIGHEST.USER.RECORD
  425. * ------[ first line different ]------
  426.       XX$ = "Resetting Last Msg Read by User.  Processing Record #"  ' dd062790
  427.       GOSUB 50345
  428.       FOR J = 1 TO A!
  429.          GET 1,J
  430.          LOCATE 24,X
  431.          PRINT J;
  432.          HASH.VALUE$ = MID$(USER.RECORD$,START.HASH,LEN.HASH)
  433.          LSET COMP.USER$ = HASH.VALUE$
  434.          IF ASC(HASH.VALUE$) = 0 OR _
  435.             COMP.USER$ = NEW.USER$ OR _
  436.             COMP.USER$ = EMPTY.USER$ THEN _
  437.               GOTO 23955
  438.          FORMER.LAST.MSG = CVI(MID$(USER.OPTIONS$,3,2))              ' dd062790
  439.          MSG.XREF.INDX = 1                                           ' KG072801
  440. * INSERTING new line(s)
  441. 23906    IF MSG.XREF.INDX > MAXIMUM.NUMBER.OF.MSGS THEN _            ' KG072801
  442.             GOTO 23907                                               ' KG072801
  443.             IF FORMER.LAST.MSG = MSG.XREF(MSG.XREF.INDX,1) THEN _    ' dd062790
  444.                NEW.LAST.MSG = MSG.XREF(MSG.XREF.INDX,2) : _          ' dd062790
  445.                GOTO 23907                                            ' KG072801
  446.             IF FORMER.LAST.MSG < MSG.XREF(MSG.XREF.INDX,1) THEN _    ' dd062790
  447.                NEW.LAST.MSG = MSG.XREF(MSG.XREF.INDX - 1,2) : _      ' dd062790
  448.                GOTO 23907                                            ' KG072801
  449.             MSG.XREF.INDX = MSG.XREF.INDX + 1                        ' KG072801
  450.          GOTO 23906                                                  ' KG072801
  451. 23907    IF FORMER.LAST.MSG = 0 THEN NEW.LAST.MSG = 0                ' KG072801
  452.          MID$(USER.OPTIONS$,3,2) = MKI$(NEW.LAST.MSG)                ' dd062790
  453.          PUT 1,J
  454. * REPLACING old line(s) by new
  455. 24010 LOCATE 24,15
  456.       PRINT "Msg #" ; MID$(MESSAGE.RECORD$,1,5);
  457. * ------[ first line different ]------
  458.       CURRENT.MSG.NUMBER = VAL(MID$(MESSAGE.RECORD$,2,4))            ' dd062790
  459.       IF CURRENT.MSG.NUMBER < RE THEN _                              ' dd062790
  460.          PRINT " read"; : _
  461.          MSG.XREF.INDX = MSG.XREF.INDX + 1 : _                       ' dd062790
  462.          MSG.XREF(MSG.XREF.INDX, 1) = CURRENT.MSG.NUMBER : _         ' dd062790
  463.          MSG.XREF(MSG.XREF.INDX, 2) = CURRENT.MSG.NUMBER : _         ' dd062790
  464.          RETURN
  465.       Y$ = MID$(MESSAGE.RECORD$,1,1)
  466.       MID$(MESSAGE.RECORD$,1,5) = SPACE$(5)
  467.       NE = NE + 1
  468.       MID$(MESSAGE.RECORD$,1,5) = STR$(NE)
  469.       MID$(MESSAGE.RECORD$,1,1) = Y$
  470.       PRINT " renumbered as Msg #" + MID$(MESSAGE.RECORD$,1,5)
  471.       PUT 1,I
  472.       MSG.XREF.INDX = MSG.XREF.INDX + 1                              ' dd062790
  473.       MSG.XREF(MSG.XREF.INDX, 1) = CURRENT.MSG.NUMBER                ' dd062790
  474.       MSG.XREF(MSG.XREF.INDX, 2) = NE                                ' dd062790
  475.       RETURN
  476. '
  477. ' * ROUTINE TO PACK THE USERS FILE
  478. '
  479. * REPLACING old line(s) by new
  480. 24800 CLS
  481.       I! = FRE(C$)
  482.       COLOR 0,7,0
  483.       LOCATE 1,10
  484. * ------[ first line different ]------
  485.       PRINT "RBBS-PC Default Configuration " + CONFIG.VERSION$;      ' DA081003
  486.       IF CONFERENCE.MODE THEN _
  487.          GOSUB 24970
  488.       COLOR FG,BG,BORDER
  489.       PRINT " Page" + STR$(DISPLAYED.PAGE.NUMBER) + " of" + STR$(MAXIMUM.DISPLAYABLE.PAGES)
  490.       RETURN
  491. '
  492. ' * ROUTINE TO DISPLAY CONFERENCE MAINTENANCE MODE IN CONFIG'S DISPLAYS
  493. '
  494. * REPLACING old line(s) by new
  495. 24970 LOCATE 2,1
  496.       PRINT SPACE$(10)
  497. * ------[ first line different ]------
  498.       LOCATE 2,10                                                    ' KG062303
  499.       COLOR 31,0,0
  500.       PRINT "(Conference Maintenance Mode for " + _                  ' KG062303
  501.             ZConfName$ + _                                           ' KG062303
  502.             ")";                                                     ' KG062303
  503.       RETURN
  504. '
  505. ' * COMMON SUBROUTINE TO DISPLAY ACTIVITY WHEN PACKING/PURGING FILES
  506. '
  507. * REPLACING old line(s) by new
  508. 25050 CALL ASKRO ("Enter the name of the conference (7 characters or less) ",24,HJ$)
  509.       IF LEN(HJ$) < 1 OR LEN(HJ$) > 7 THEN _
  510.          GOTO 25040
  511.       CALL ALLCAPS (HJ$)
  512. * ------[ first line different ]------
  513.       ZConfName$ = HJ$                                               ' KG062302
  514.       CP$ = HJ$
  515. * REPLACING old line(s) by new
  516. * ------[ first line different ]------
  517. 25090 CALL BRKFNAME (MAINMSG$,X1$,X2$,X3$,TRUE)                      ' DA082102
  518.       FILE$ = X1$ + CP$ + "M.DEF"                                    ' DA082102
  519.       MAIN.MESSAGE.FILE$ = FILE$                                     ' DA082501
  520.       GOSUB 30000                                                    ' DA082501
  521.       IF OKAY THEN _                                                 ' DA082501
  522.          GOTO 25100                                                  ' DA082501
  523.       CALL BRKFNAME (CONFERENCE.MENU$,X1$,X2$,X3$,TRUE)              ' DA082501
  524.       FILE$ = X1$ + CP$ + "M.DEF"                                    ' DA082501
  525.       GOSUB 30000                                                    ' DA082501
  526.       IF OKAY THEN _                                                 ' DA082501
  527.          MAIN.MESSAGE.FILE$ = FILE$                                  ' DA082501
  528. * INSERTING new line(s)
  529. 25100 CALL BRKFNAME (MAINUSR$,X1$,X2$,X3$,TRUE)                      ' DA082501
  530.       FILE$ = X1$ + CP$ + "U.DEF"                                    ' DA082501
  531.       MAIN.USER.FILE$ = FILE$                                        ' DA082501
  532.       GOSUB 30000                                                    ' DA082501
  533.       IF OKAY THEN _                                                 ' DA082501
  534.          GOTO 25160                                                  ' DA082501
  535.       FILE$ = CP$ + "U.DEF"                                          ' KG082501
  536.       GOSUB 30000                                                    ' DA082501
  537.       IF OKAY THEN _                                                 ' DA082501
  538.          MAIN.USER.FILE$ = FILE$ : _                                 ' DA082501
  539.          GOTO 25160                                                  ' DA082501
  540. * REPLACING old line(s) by new
  541. * ------[ first line different ]------
  542. 25142 CALL GETNUMYN ("Make a user's file for this conference?",AB)   ' KG082501
  543.       IF AB THEN _
  544.          GOTO 25160
  545. * REPLACING old line(s) by new
  546. 25144 CONFERENCE.MODE = 2
  547. * ------[ first line different ]------
  548.       MAIN.USER.FILE$ = MAINUSR$                                     ' DA082501
  549.       GOTO 25170
  550. * REPLACING old line(s) by new
  551. * ------[ first line different ]------
  552. 25160 CONFERENCE.MODE = 1                                            ' DA082501
  553.       UG = 0
  554. * REPLACING old line(s) by new
  555. 26080 CALL GETINIT ("Select network mail type (0 to 5, CR to end)",24,0,5,AB,CR)
  556. * ------[ first line different ]------
  557.       NET.MAIL$ = NONE.PICKED$                                       ' KG080301
  558.       IF AB = 1 THEN _
  559.          NET.MAIL$ = "SeaDog"
  560.       IF AB = 2 THEN _
  561.          NET.MAIL$ = "BINKLEY TERM"
  562.       RETURN
  563. * REPLACING old line(s) by new
  564. * ------[ first line different ]------
  565. 31040 LSET RR$ = " 0      " + _               ' NUMBER OF LAST MESSAGE  ' DA061001
  566.                  MKI$(0) + _                  ' SECURITY LEVEL TO AUTO-ADD USER
  567.                  SPACE$(116) + _              ' BLANKS IN ALL OTHER FIELDS
  568.                  RIGHT$("0"+MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2),2)
  569.       RETURN
  570. '
  571. ' * COMMON SUBROUTINE TO CREATE A BLANK "NODE" RECORD IN THE MESSAGE FILE
  572. '
  573. * REPLACING old line(s) by new
  574. 59080 CLOSE #1
  575. '
  576. ' * NOTIFY THE SYSOP THAT THE CONFIGURATION DESCRIPTION FILE HAS BEEN WRITTEN
  577. '
  578.       CLS
  579.       LOCATE 12,1,1
  580. * ------[ first line different ]------
  581.       PRINT "Saved RBBS-PC configuration description file " ; CONFIG.FILENAME$ ' KG080904
  582.       GOTO 60340                                                     ' DA081006
  583. '
  584. ' *  CONFIG.BAS'S ERROR ROUTINES
  585. '
  586. * REPLACING old line(s) by new
  587. 60010 '* HANDLE ERROR CONDITIONS *
  588.       IF ERR = 62 AND _
  589.         (ERL = 11600 OR _
  590.          ERL = 11620 OR _
  591.          ERL = 11640 OR _
  592.          ERL = 11660 OR _
  593.          ERL = 11680 OR _
  594.          ERL = 11700 OR _
  595.          ERL = 11705 OR _
  596.          ERL = 11706) THEN _
  597.          PRINT CONFIG.FILENAME$ + _
  598.                " from a version earlier than " + CONFIG.VERSION$ + " on default drive." : _
  599.          PRINT "Please delete and rerun CONFIG." : _
  600.          RESUME 60340
  601.       IF ERL = 15780 AND ERR = 5 AND _
  602.          INSTR(USER.INIT.COMMAND$,"S0=") = 0 THEN _
  603.          RESUME 16073
  604. * ------[ first line different ]------
  605.       IF ERL = 22340 THEN _                                          ' KG073103
  606.          RESUME 22342                                                ' KG073103
  607.       IF ERL = 31000 AND ERR = 58 THEN _
  608.          KILL A$ : _
  609.          RESUME 31000
  610.       IF ERL = 31030 AND ERR = 58 THEN _
  611.          KILL A$ : _
  612.          RESUME 31030
  613.       IF ERL = 22120 AND ERR = 6 THEN _
  614.          RESUME 22100
  615.       IF ERL = 24750 AND ERR = 58 THEN _
  616.          KILL A$ : _
  617.          RESUME 24750
  618.       IF ERL = 31020 THEN _
  619.          PRINT "Unable to kill ";MAIN.MESSAGE.FILE$;".  Error";STR$(ERR):_
  620.          RESUME 31035
  621.       IF ERL = 50490 AND ERR = 58 THEN  _
  622.          RESUME 50500
  623.       IF ERL = 50540 AND ERR = 58 THEN  _
  624.          RESUME 50550
  625.       IF ERL = 50490 OR ERL = 50540 THEN _
  626.          RESUME 15230
  627.       IF ERL = 60471 THEN _
  628.          IF ERR <> 76 THEN _
  629.             RESUME 60478 _
  630.          ELSE RESUME 60474
  631.       IF ERL = 60480 THEN _
  632.          PRINT "ERROR -";ERR;" UNABLE TO CREATE SUBDIRECTORY" : _
  633.          RESUME 60478
  634.       IF ERR = 61 THEN _
  635.          PRINT "ERROR - IBM DOS DISKETTE FULL " : _
  636.          RESUME 60340
  637.       IF ERR = 67 THEN _
  638.          PRINT "ERROR - IBM DOS DIRECTORY FULL" : _
  639.          RESUME 60340
  640.       IF ERR = 70 THEN _
  641.          PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED" : _
  642.          RESUME 60340
  643.       IF ERR = 71 THEN _
  644.          PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE"  : _
  645.          RESUME 60340
  646.       IF ERR = 72 THEN _
  647.          PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE" : _
  648.          RESUME 60340
  649.       PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
  650.